package 简单.动态规划.子序列;

/**
 * 给你一个正整数组成的数组 nums ，返回 nums 中一个 升序 子数组的最大可能元素和。
 * 子数组是数组中的一个连续数字序列。
 * 已知子数组 [numsl, numsl+1, ..., numsr-1, numsr] ，若对所有 i（l <= i < r），
 * numsi < numsi+1 都成立，则称这一子数组为 升序 子数组。注意，大小为 1 的子数
 * 组也视作 升序 子数组。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/maximum-ascending-subarray-sum
 */
public class 最大升序子数组和_1800 {

    public static void main(String[] args) {

    }

    public int maxAscendingSum(int[] nums) {
        int ans = nums[0];
        int[] dp = new int[nums.length];
        dp[0] = nums[0];

        for (int i = 1; i < nums.length; i++) {
            if (nums[i] > nums[i - 1]) {
                dp[i] = dp[i - 1] + nums[i];
            } else {
                dp[i] = nums[i];
            }

            ans = Math.max(ans, dp[i]);
        }

        return ans;
    }

}
